package com.sss.hloster0403;

public class TestDriver {

	public static void main(String[] args) {
		test020();
	}

	/**
	 * 按值传参
	 */
	private static void test020() {
		// 定义一个变量
		String str = "Hello";// i是实参
		System.out.println("主函数中，在子函数调用之前实参的值;" + str);
		// 调用子函数
		test021(str);
		// 子函数执行完成之后，打印实参i的值
		System.out.println("主函数中，在子函数调用之后实参的值;" + str);

	}

	/**
	 * 子函数调用，按值传参 函数定义时使用的，是形参
	 */
	private static void test021(final String str0) {
		// 打印子函数中的形参的值
		System.out.println("子函数中，形参接收到实参的值：" + str0);
		// 改变子函数中形参的值
		// str0+="world!";
		System.out.println("子函数中，形参改变后的值：" + str0);
	}

	/**
	 * 对于引用类型，不能修改地址，但是可以修改地址中的内容
	 */
	private static void test03() {
		// final局部变量（引用类型）
		final String str = new String();
		// 修改引用地址不可以
		// str =new String();
		// 修改引用对象类型的汇总的内容可以
		// str=str+"小明";
		final String str1 = "小明";
		// str1="小明";
	}

	/**
	 * 对于引用类型，不能修改地址，但是可以修改地址中的内容
	 */
	private static void test02() {
		// final局部变量（引用类型）
		final Student stu = new Student();
		// 修改引用地址是不可以的
		// stu =new Student();
		// 修改引用对象类型中的内容可以
		stu.setStuName("小明");
		stu.setStuName("小白");
	}

	private static void test01() {
		// final 局部变量（基本类型）
		final int age;
		// 修改局部变量的值
		age = 11;
		// final类型的变量只能初始化赋值一次
		// age=21;
	}
}
